The field of data communications represents one of the most rapidly evolving technologies in wide spread use today. Data communications and data processing has become important to virtually every segment of the nation's economy. Whole new industries and companies have organized around the need for, and the provision of, data communications. Through the use of specialized semiconductors for signal processing and data compression, various multimedia applications are evolving which orient data communications to the transport of voice, data, and video information, the types of information desired by the everyday consumer.
Recently, the computer and data processing industries are seeing a large expansion in the requirements for high performance, high speed data communications, particularly, data commnunications between computer systems. For example, it is becoming increasingly common for large institutions and companies to link several "server" computer systems, via high speed data links, to form a very powerful "virtual" computer system. Dedicated technology has been developed specifically to adapt servers to form such "clusters". Clustering technology is increasingly being used to share very large processing jobs among several computer systems, since it is less expensive to link several smaller systems to tackle a large job than to install a single large system to accomplish the same task. With such technology, the data communications between the computer systems becomes very critical.
Data is commonly transferred between computer systems and terminals by changes in the current or voltage on a metal wire, or channel, between the systems. Alternatively, fiber optics, glass fibers optimized for conducting light, convey data as pulses or changes in light. A data transmission in which a group of bits moves over several channels simultaneously is referred to as a parallel transmission. A data transmission where the bits move over a single channel, one after the other, is referred to as a serial transmission. Computers and other data processing systems which are located near one another normally use parallel transmission because it is much faster.
As distances between systems increase, parallel transmission increasingly suffers a number of limitations. As the distances between systems increase, the cost of the larger number of channels (e.g., copper wires) used in parallel transmission increases. In addition, as the distances increase, the difficulty of accurately receiving and transmitting the electrical pulses comprising the information increases. Because of this, serial transmission is typically utilized for transmission over longer distances. However, as described above, serial transmission uses only a single data transmission channel.
While serial transmission has the advantage of being less expensive with regard to the cabling between systems, and while serial transmission does not have the same types of problems with regard to accurately transmitting and receiving the electrical pulses, total data throughput is not as fast. For the demanding top end applications discussed above (e.g., computer system clustering), high data throughput is imperative.
Prior Art FIG. 1 shows a typical prior art parallel data transmission system 100. System 100 includes a transmitter 101, four data transmission channels (hereafter channels), and a receiver 102. The four channels, channel 0, channel 1, channel 2, and channel 3, are copper wires designed to transmit electrical pulses (e.g., voltage pulses) representing bits of information. It should be noted, however, that the channels could also be fiber optic lines adapted to convey information as light pulses.
Within transmitter 101, four bits of word 103, are shown. The bits of word 103 represent a data "word" (e.g., the group of bits transmitted simultaneously) being transmitted from transmitter 101 down channels 0-3. In the present example, each bit of the word is a positive voltage pulse representing a logical one (e.g., 1111 binary), however, it should be understood that word 103 could be some other value (e.g., 0100) and that some or all of the voltage pulses representing the bits could be negative as opposed to positive. As shown, the individual bits comprising word 103 are synchronous with respect to their rising and falling edges. The bits of word 103, after they are received at receiver 102, are shown as word 104. The individual bits comprising word 104 are still synchronous. Hence, receiver 102 has no trouble sampling the electrical pulses conducted via channels 0-4 to recreate word 103.
With reference now to Prior Art FIG. 2A, a data transmission system 200 is shown. System 200 is similar to system 100 except that the distance between transmitter 101 and receiver 102 is greater. Accordingly, channels 0-3 are longer. As briefly described above, as distances increase, the difficulties in accurately transmitting electrical pulses over the longer channels increase.
Word 103 shows four bits for transmission (e.g., 1111) via channels 0-3. As with system 100, the four bits are synchronous with respect to their rising and falling edges. However, word 105 shows the four bits after transmission via the longer channels 0-3. Due to the inherent characteristics of the longer channels, among other factors, the bits of word 105 are "skewed". The individual bits are no longer synchronous as they are received by receiver 102. Herein lies a major problem with parallel transmission in accordance with the prior art.
Referring now to Prior Art FIG. 2B, a graph 250 of the bits comprising the received word 105 is shown with respect to time. The horizontal direction of graph 250 represents the sampling time of receiver 102. The vertical direction of graph 250 represents the voltage of the individual bits. The vertical line represents sample time t.sub.s. To detect the information conveyed by channels 0-3, receiver 102 samples the voltage level of the channels synchronous with the expected arrival time of word 105. The expected arrival time can be determined through a number of techniques. For example, the scheme most often used is to sample with respect to a clock signal, transmitted through its own dedicated channel (not shown). This is commonly referred to as source synchronous clocking, since the clock used for data recapture is produced by the transmitter (source) and transmitted along with the data. Once the sample time ts is determined, the voltage levels of channels 0-3 are sampled. The problem, however, is that due to the increased distance, the bits of word 105 are no longer synchronous.
Thus, at sample time t.sub.s, b.sub.0 is sampled "high" and b.sub.2 is sampled high, however, b.sub.1 is erroneously sampled "low". In addition, b.sub.3 is indeterminate due to the fact that t.sub.s occurs during b.sub.3 's transition from low to high. Consequently, b.sub.3 is unpredictably sampled either high or low (resulting in word 103 sampling as X101). Word 105 is skewed with respect to word 103. Although word 103 was synchronous when it was originally transmitted, the effects of the transmission through the longer channels 0-3 result in the skewing of the individual bits comprising the word, resulting in word 105 as shown in FIG. 2B. The information conveyed by word 105 is thus corrupted and lost. While system 100 functioned nominally, system 200, due to the increased transmission distance, is unable to reliably transfer data at the same bit rates.
The transmission of parallel data over long distances is affected by different propagation delays of the channels. This holds true whether the channels are metal or fiber optic (although the skewing effect per unit distance observed through fiber optic channels is not as severe). This difference in propagation delays causes the arrival times of the individual data bits at the destination receiver to be different. The difference between the bit arrival times is referred to as skew. Where the channel lengths are kept relatively low (e.g., under 1 to 3 meters), the skew effect is not disruptive. As channel lengths increase, the propagation delay accumulates and the skew increases. Eventually, the increasing channel lengths result in bits from one word "drifting" into the bits of the next word. Once this occurs, the receiver cannot reliably align the bits into their respective words.
One attempted solution creates individual serial data bit streams out of each channel. This scheme encodes the clock signal directly into the bit stream, recovering the clock signal at the receiver and reconstructing the data word through signal processing techniques. This system requires complex signal processing at the receiver end and utilizes a valuable portion of the bandwidth of each channel encoding clock data.
Another attempted solution performs a complex set of analyses on test signal patterns on each of the channels. The tests are designed to reveal the characteristic skew of each channel. The results of the analysis are used to reconfigure compensation or filter circuits to account for the respective skew distortion in each channel. The technique is widely employed by modems. The problem with this solution, however, is that the propagation delays causing the skew are dynamic. A large number of variables affect the propagation delay of the channels (e.g., temperature, voltage, etc.) and the variables are themselves in constant flux. Hence, the tests are not accurate enough, over a long enough period of time. To compensate for this, data transmission is frequently interrupted in order to conduct these complex sets of tests. Consequently, data transmission rates suffer.
Yet another attempted solution involves merely "hand tuning" the individual wires, or fibers, of a bundle. The hand tuned wires, or fibers, are then painstakingly assembled into a data transmission cable. This scheme allows longer cables to be produced without exceeding the acceptable amount of skew for the channels, thus mitigating the problem. However, it does not address the root of the problem and can only achieve marginal improvements in distance. In addition, the resulting cables are very expensive in comparison to the benefit they confer. The costs are prohibitive with regard to the widespread adoption of this scheme.
Thus, what is desired is a method and system which overcomes the limitations of prior art parallel data transmission and reception. The desired solution should accurately and reliably compensate for skew distortion, thereby providing for the reliable parallel transmission and reception of data across much longer distances than possible with prior art technology. The desired solution should realize higher data transmission rates over a given distance than possible with prior art systems. The required system should maximize the available bandwidth of each channel. The required system should not require extensive and complex testing to characterize the propagation delay of each channel or excessively interrupt data transmission for channel testing. The present invention provides a novel solution to the above requirements.